#pragma once
#ifndef __MESH_H__
#define __MESH_H__

#include "Utility.h"

#include "../util/PreDeclare.h"

namespace WindGE
{
	class WIND_CORE_API Mesh
	{
	public:
		Mesh();
		~Mesh();

		void add(MeshPartPtr meshPart);
		bool at(unsigned int index, MeshPartPtr& meshPart) const;

		bool load(const std::string& fileName);
		bool save(const std::string& fileName);

		bool load(std::istream& inFile);
		bool save(std::ostream& outFile);

		inline unsigned int count()  const { return mesh_parts_.size(); }

		unsigned int vertex_stream_size(const std::string& vsName) const;
		
	private:
		std::vector<MeshPartPtr> mesh_parts_;
	};

}//end namespace WindGE

#endif // !__MESH_H__



